TCP Socket Connection Establishment: Three-Way Handshake

Computer Programming - ইউনিক্স সকেট (Unix Socket) TCP Socket Programming (TCP Socket Programming) |
274
274

TCP (Transmission Control Protocol) একটি Three-Way Handshake প্রক্রিয়ার মাধ্যমে ক্লায়েন্ট এবং সার্ভারের মধ্যে সংযোগ স্থাপন করে। এটি একটি কানেকশন-অরিয়েন্টেড প্রোটোকল, যা ক্লায়েন্ট এবং সার্ভারের মধ্যে নির্ভরযোগ্য যোগাযোগ স্থাপন করতে এবং ডেটা ট্রান্সফার শুরু করার আগে উভয় পক্ষের মধ্যে সমঝোতা নিশ্চিত করতে ব্যবহৃত হয়। Three-Way Handshake একটি স্থায়ী এবং নির্ভরযোগ্য সংযোগ তৈরি করার জন্য তিনটি ধাপে সম্পন্ন হয়।

Three-Way Handshake এর ধাপসমূহ

Three-Way Handshake প্রক্রিয়াটি তিনটি প্রধান ধাপের মাধ্যমে সম্পন্ন হয়:

  1. SYN (Synchronize)
  2. SYN-ACK (Synchronize-Acknowledgment)
  3. ACK (Acknowledgment)

ধাপ ১: SYN (Synchronize)

  • ক্লায়েন্ট → সার্ভার: ক্লায়েন্ট প্রথমে সার্ভারের কাছে একটি SYN প্যাকেট পাঠায়, যা সংযোগ স্থাপনের জন্য একটি অনুরোধ।
  • Sequence Number: ক্লায়েন্ট এই SYN প্যাকেটের সাথে একটি Initial Sequence Number (ISN) সংযুক্ত করে, যা ডেটা ট্রান্সফারের সিকোয়েন্সের প্রথম নম্বর হিসেবে ব্যবহৃত হয়।
  • কাজ: এই ধাপে, ক্লায়েন্ট মূলত সার্ভারকে জানায় যে সে সংযোগ স্থাপন করতে চায়।

উদাহরণ:

  • ক্লায়েন্ট একটি SYN প্যাকেট পাঠায়, যার Sequence Number হতে পারে X

ধাপ ২: SYN-ACK (Synchronize-Acknowledgment)

  • সার্ভার → ক্লায়েন্ট: সার্ভার ক্লায়েন্টের SYN প্যাকেট গ্রহণ করার পর, সার্ভার তার স্বীকৃতি জানিয়ে একটি SYN-ACK প্যাকেট পাঠায়।
  • SYN: সার্ভারও তার Initial Sequence Number (ISN) ক্লায়েন্টকে জানাতে SYN অংশ পাঠায়।
  • ACK: সার্ভার ক্লায়েন্টের পাঠানো Sequence Number-এর ACK হিসাবে (X+1) পাঠায়, যা নির্দেশ করে যে ক্লায়েন্টের SYN প্যাকেটটি সফলভাবে গ্রহণ করা হয়েছে।
  • কাজ: এই ধাপে, সার্ভার নিশ্চিত করে যে ক্লায়েন্টের কাছ থেকে SYN প্যাকেটটি ঠিকঠাক পেয়েছে এবং সে-ও সংযোগ স্থাপনে প্রস্তুত।

উদাহরণ:

  • সার্ভার একটি SYN-ACK প্যাকেট পাঠায়, যেখানে সার্ভারের Sequence Number হতে পারে Y এবং ক্লায়েন্টের ACK হিসাবে (X+1)

ধাপ ৩: ACK (Acknowledgment)

  • ক্লায়েন্ট → সার্ভার: ক্লায়েন্ট সার্ভারের SYN-ACK প্যাকেট গ্রহণ করার পর, ক্লায়েন্ট একটি ACK প্যাকেট পাঠায়।
  • ACK: এই ACK প্যাকেটে ক্লায়েন্ট সার্ভারের Sequence Number-এর ACK হিসাবে (Y+1) পাঠায়, যা নিশ্চিত করে যে সার্ভারের SYN-ACK প্যাকেট সফলভাবে গ্রহণ করা হয়েছে।
  • কাজ: এই ধাপে, ক্লায়েন্ট নিশ্চিত করে যে উভয় পক্ষই সংযোগ স্থাপনে প্রস্তুত এবং সংযোগ সম্পূর্ণরূপে স্থাপিত।

উদাহরণ:

  • ক্লায়েন্ট একটি ACK প্যাকেট পাঠায়, যার ACK Number (Y+1)

Three-Way Handshake প্রক্রিয়ার সংক্ষেপে:

ধাপপ্রেরকপ্রাপকপ্যাকেটের ধরনSequence/ACK Number
ক্লায়েন্টসার্ভারSYNSequence Number: X
সার্ভারক্লায়েন্টSYN-ACKSequence Number: Y, ACK: X+1
ক্লায়েন্টসার্ভারACKACK: Y+1

Three-Way Handshake এর গুরুত্ব

  • নির্ভরযোগ্যতা নিশ্চিতকরণ: Three-Way Handshake প্রক্রিয়া নিশ্চিত করে যে উভয় পক্ষই সংযোগ স্থাপনে সক্ষম এবং প্রস্তুত। এটি ডেটা ট্রান্সফারের আগে উভয় পক্ষের মধ্যে সমঝোতা নিশ্চিত করে।
  • ডেটা ট্রান্সফারের জন্য প্রস্তুতি: সংযোগ স্থাপনের পর TCP নিশ্চিত করে যে ডেটা প্যাকেটগুলো সঠিকভাবে অর্ডারে পৌঁছাবে এবং ত্রুটি চেকিং এবং পুনরায় পাঠানোর জন্য মেকানিজম প্রয়োগ করে।
  • Congestion Control: Three-Way Handshake প্রক্রিয়া নেটওয়ার্কের অবস্থা যাচাই করে এবং কনজেশন ম্যানেজমেন্টের মাধ্যমে ডেটা ট্রান্সফার নিয়ন্ত্রণ করে।

Three-Way Handshake এর উদাহরণ

নিচে একটি সাধারণ উদাহরণ দেওয়া হলো যেখানে TCP Three-Way Handshake প্রক্রিয়ার মাধ্যমে ক্লায়েন্ট এবং সার্ভারের মধ্যে সংযোগ স্থাপন করা হয়:

ধাপ ১: ক্লায়েন্ট একটি SYN প্যাকেট পাঠায়:

  • ক্লায়েন্ট সার্ভারের কাছে একটি SYN প্যাকেট পাঠায়, যেখানে Sequence Number 1000

ধাপ ২: সার্ভার একটি SYN-ACK প্যাকেট পাঠায়:

  • সার্ভার ক্লায়েন্টের SYN প্যাকেট গ্রহণ করে এবং ACK হিসাবে 1001 পাঠায় এবং নিজস্ব Sequence Number 2000 পাঠায়।

ধাপ ৩: ক্লায়েন্ট একটি ACK প্যাকেট পাঠায়:

  • ক্লায়েন্ট সার্ভারের SYN-ACK প্যাকেট গ্রহণ করে এবং ACK হিসাবে 2001 পাঠায়।

এই প্রক্রিয়া সম্পন্ন হওয়ার পর, ক্লায়েন্ট এবং সার্ভারের মধ্যে একটি স্থায়ী সংযোগ তৈরি হয় এবং ডেটা ট্রান্সফারের জন্য তারা প্রস্তুত থাকে।

Three-Way Handshake এর সীমাবদ্ধতা

  • Slow Start: Three-Way Handshake প্রক্রিয়া কিছুটা সময় সাপেক্ষ, কারণ এটি তিনটি ধাপের মাধ্যমে সংযোগ স্থাপন করে। এটি কম লেটেন্সি নেটওয়ার্কে প্রায় অদৃশ্য হলেও, উচ্চ লেটেন্সি নেটওয়ার্কে সময় নিতে পারে।
  • Syn Flooding Attack: হ্যাকাররা সার্ভারকে SYN প্যাকেটের মাধ্যমে অতিরিক্ত ব্যস্ত করে রাখতে পারে, যাকে SYN Flooding Attack বলা হয়। এতে সার্ভার অনেক SYN প্যাকেট গ্রহণ করতে গিয়ে ওভারলোড হয়ে যেতে পারে এবং অন্যান্য সংযোগ গ্রহণ করতে অক্ষম হতে পারে। এই আক্রমণ প্রতিরোধের জন্য TCP SYN Cookies বা অন্যান্য নিরাপত্তা পদ্ধতি ব্যবহার করা হয়।
common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion